<?php
/*
 * 微信发消息订阅队列处理任务
 */

namespace app\queue;

use app\common\service\Message as MessageService;
use think\queue\Job;

class WxMessage
{

    /**
     * fire方法是消息队列默认调用的方法
     * @param Job $job 当前的任务对象
     * @param array|mixed $data 发布任务时自定义的数据
     */
    public function fire(Job $job, $data)
    {
        // 执行任务
        $isJobDone = $this->doJob($data);
        if ($isJobDone) {
            // 任务执行成功 删除任务
            $job->delete();
        } else {
            if ($job->attempts() > 3) {
                // 任务重试3次后 删除任务
                $job->delete();
            }
        }
    }

    /**
     * 队列执行 业务处理
     * @param $data
     * @return bool
     */
    private function doJob($data)
    {
        switch ($data['type']){
            case 'new_arrival':
                echo '新品发消息订阅';
                //小程序发订阅消息
                $data['store_id'] = 10001;
                MessageService::WxMessageGoodsNewArrival('order.messagewx', $data);
                break;
            /*case 2:
                echo '类型2处理';
                dump($data);
                break;*/
        }
        return true;
    }
}